উদাহরণ সহ Entity এবং Table Mapping

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Entity এবং Table Mapping
235

স্প্রিং বুট ওআরএম-এ Entity এবং Table Mapping ডেটাবেসের টেবিল এবং জাভা অবজেক্টের মধ্যে একটি সংযোগ তৈরি করে। JPA এর মাধ্যমে এটি সহজেই সম্পন্ন করা যায়।


Entity এবং Table Mapping কী?

  • Entity: এটি জাভার একটি ক্লাস, যা ডেটাবেসের একটি টেবিলকে ম্যাপ করে। JPA অ্যানোটেশন দিয়ে Entity তৈরি করা হয়।
  • Table Mapping: ডিফল্টভাবে JPA Entity ক্লাসের নাম টেবিল নাম হিসাবে নেয়। তবে কাস্টম টেবিল নাম ব্যবহার করতে চাইলে @Table অ্যানোটেশন ব্যবহার করা হয়।

উদাহরণ: Entity এবং Table Mapping

নিচে একটি উদাহরণ দেওয়া হলো যেখানে Product নামে একটি Entity তৈরি করা হয়েছে এবং এটি ডেটাবেসের একটি টেবিলের সঙ্গে ম্যাপ করা হয়েছে।

Entity তৈরি

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "products") // ডেটাবেসের টেবিল নাম কাস্টমাইজ করার জন্য
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) // প্রাইমারি কী অটোমেটিক জেনারেশনের জন্য
    private Long id;

    private String name;

    private double price;

    private int quantity;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }
}

Table Mapping ব্যাখ্যা

  1. @Entity: এই অ্যানোটেশন দিয়ে একটি ক্লাসকে JPA Entity হিসেবে চিহ্নিত করা হয়।
  2. @Table: টেবিলের কাস্টম নাম দিতে এই অ্যানোটেশন ব্যবহার করা হয়। এখানে products নামে টেবিল নির্ধারণ করা হয়েছে।
  3. @Id: এটি প্রাইমারি কী চিহ্নিত করে।
  4. @GeneratedValue: প্রাইমারি কী অটোমেটিক জেনারেশনের জন্য ব্যবহার করা হয়। এখানে GenerationType.IDENTITY ব্যবহৃত হয়েছে।
  5. ফিল্ডগুলো: name, price, এবং quantity টেবিলের কলাম হিসাবে ম্যাপ করা হয়েছে।

Spring Data JPA Repository উদাহরণ

এই Entity এর জন্য একটি Repository ইন্টারফেস তৈরি করা যায়:

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {
    // কাস্টম কেরি লিখতে হলে এখানে মেথড সংজ্ঞা দেওয়া যাবে
    Product findByName(String name);
}

ডাটাবেস কনফিগারেশন

application.properties ফাইলে ডাটাবেসের কনফিগারেশন লিখতে হয়:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

উদাহরণ: ডেটা সেভ এবং ফেচ করা

Controller উদাহরণ:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/products")
public class ProductController {

    @Autowired
    private ProductRepository productRepository;

    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productRepository.save(product);
    }

    @GetMapping
    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }
}

টেবিলের কাঠামো (SQL)

উপরের উদাহরণ অনুযায়ী products টেবিলের কাঠামো হবে:

CREATE TABLE products (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    price DOUBLE,
    quantity INT
);

এই Entity এবং Table Mapping ব্যবহার করে স্প্রিং বুট অ্যাপ্লিকেশনের ডেটাবেস পরিচালনা করা সহজ এবং কার্যকর হয়। এটি ডেটাবেস-সংক্রান্ত কাজকে আরও সংক্ষিপ্ত ও গঠনমূলক করে তোলে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...